In a factory automation (FA) system, a controller for controlling the operation of the production facilities in the factory is disposed. This controller is called a programmable logic controller (PLC). A control program for operating the PLC is designed using a language such as ladder language. The designed control program is converted into an execution-use control program using a ladder program development environment and written in the PLC via a communication cable. A device that develops the control program and writes the control program into the PLC in this manner is called a development-use computer.
The ladder program development environment is widely marketed as software that operates on Windows (trademark). With a computer on which Windows (trademark) runs and the ladder program development environment, the execution-use control program can be written into and read from the PLC easily using the computer. In recent years, however, a problem arises in that an execution-use control program is extracted from a PLC having operated in a factory and the extracted program is imitated to create a PLC for controlling the operation of another production facility.
In order to cope with this problem, various countermeasures have been taken in the FA system so that creation of a pirated copy is prevented. As a specific example, Patent Literature 1 presents a technique in which, when writing an execution-use control program for a control program into a PLC, a development-use computer encrypts the execution-use control program and transfers the encrypted execution-use control program to the PLC. When executing the control program, the PLC analyzes an encryption rule generated in advance and extracts information specific to a control apparatus registered in the development-use computer. Based on the extracted information specific to the control apparatus, the PLC checks whether or not the execution-use control program is a program that is specific to the control apparatus (PLC). If the execution-use control program is the specific program, the execution-use control program is decrypted by the PLC. Data in the PLC is protected in this manner.